(廢文模式 on)
時間不夠 again...~
(廢文模式 off)
在這個小節裡,谷歌概略性地將機器學習分為兩個階段:
(一般來說,多數人對機器學習的印象基本上都是停留在第一階段)
在第一階段中,核心概念就是拿已經標記好的資料來訓練模型,這邊谷歌也舉了個小例子來說明一些機器學習中會用到的術語:
以訓練一個圖像分類器為例:
對於模型本身而言,它實際上就是一個巨大且複雜的數學函數,而我們在訓練模型的過程,就非常類似於在調整這個函數的各種權重,使這個函數最後的輸出可以非常接近我們想要的結果。
(在這整個系列課程中,谷歌主要以監督式學習的問題來作為互動及討論的對象,暫時不考慮其他複雜的問題XD)
當訓練完模型之後,我們可能會嘗試拿一些這個模型沒有看過的輸入來測試這個模型的好壞,如果模型的結果依然如我們所預期的正確,那代表這個模型的確是有學習到一些內容來作為他判斷答案的依據。(至於這個內容跟我們所預期他該學到的東西是否相同,還需要再透過一些額外的方式來確認,也有許多情況模型學到的判斷標準可能超乎人類的想像,這部分在這裡就暫不討論了~)
谷歌在這邊提到對於一個資料科學家(data scientist)而言,可能會耗費及大量的心力在第一階段,也就是如何建出一個好的模型,但,谷歌認為僅僅這樣是不夠的,訓練模型的最終目的就是希望能在未來的資料上作出預測 (prediction) 或是推論 (inference),也就是必須能被放在真實世界的產品上使用,因此谷歌點出第二階段其實就是「如何讓模型能在真實世界的產品上運作」。
看到這邊,筆者相信不少讀者可能會認為第二階段沒什麼重要的,第一階段都成功了第二階段算什麼呢?不就是把模型放在電腦中重複不斷地預測或是推論就好嗎?這邊谷歌很有趣地提到許多機器學習的教科書、機器學習相關部落格貼文或甚至是大學院校中教授的機器學習課程其實都有意識或是無意識地傾向忽略第二階段,也因此會讓不少人忽略第二階段的重要性。
谷歌最後說了一句略帶哲理(嘲諷)意味的話:
「But in the real world, what is the use of training a machine learning model if you cannot use it?」
並強調整項課程會著重在所謂「End-to-end (端對端)」的介紹,並表示透過 end-to-end 的方式就是意指將機器學習模型套用在真實世界的產品上。
很明顯地,包括筆者在內的許多人對於機器學習的印象可能都只停留在第一階段,也就是「如何訓練好一個模型」,對於第二階段的「上線」其實根本沒想那麼多(一個好的模型都生不出來哪可能走到第二階段辣ˊˋ)。但筆者非常幸運地剛好在從事資料分析相關的工作,也恰恰遭遇了一個模型準備上線時所遇到的各種挑戰與問題,這部分留待未來的篇章有空再與各位讀者分享~
最後,筆者在工作後(笑)對於谷歌這樣的說法是非常認同的,一是因為的確業界在使用機器學習的模型時的確非常需要第二階段的支援,如果第一階段成功,但第二階段的支援卻失敗或是不足,終究還是得以失敗告終。
時間不夠只能拿篇幅長短來交換了QQ
希望可以把時間控制地更好些><
(來睏來睏 ^^)!